package be.kuleuven.cs.mop.gui.components;



/**
 * Represents a component used for user input
 */
public interface Input<T> {
	
	/**
	 * Returns the user input of this {@link Input}
	 * 
	 * @throws Exception
	 * 				if the specified input is invalid
	 */
	public T read() throws Exception;
	
	/**
	 * Sets the current value of this {@link Input}
	 * 
	 * @param value - the desired value
	 */
	public void write(T value);
	
}